`timescale 1ns / 1ps
/////////////////////////////////////////////////////////////////////////////
////                                                                     ////
//// Instituto Tecnologico de Costa Rica                                 ////
////                                                                     ////
//// Test Bench Maquina estados finitos                                  ////
////                                                                     ////
//// Este archivo es parte del proyecto: Control de luces de semaforo    ////
//// http://repositorio-charmander.googlecode.com/svn/trunk/             ////
////                                                                     ////
//// Descripcion                                                         ////
//// Implementacion de un control de luces de semaforo como un proyecto  ////
//// del curso de Taller de Diseño Logico.                               ////
////                                                                     ////
//// Funcionamiento:                                                     ////
//// - Modulo de test bench de la maquina estados finitos                ////
////                                                                     ////
////                                                                     ////                                    
//// Autores:                                                            ////
//// - Gia Chen, kathya0812@gmail.com                                    ////
////   Edgar Rojas, edtec217@gmail.com                                   ////
////                                                                     ////
/////////////////////////////////////////////////////////////////////////////

module MaquinaEstadosFinitos_tb;

	// Inputs
	reg _clk_i;
	reg termino_escribir_i;
	reg termino_leer_i;
	reg fallo_i;
	reg _rst_i;

	// Outputs
	wire led_leer_o;
	wire led_escribir_o;
	wire led_OK_o;
	wire led_fallo_o;
	wire escriba_o;
	wire lea_o;

	// Instantiate the Unit Under Test (UUT)
	MaquinaEstadosFinitos uut (
		._clk_i(_clk_i), 
		.termino_escribir_i(termino_escribir_i), 
		.termino_leer_i(termino_leer_i), 
		.fallo_i(fallo_i), 
		._rst_i(_rst_i), 
		.led_leer_o(led_leer_o), 
		.led_escribir_o(led_escribir_o), 
		.led_OK_o(led_OK_o), 
		.led_fallo_o(led_fallo_o), 
		.escriba_o(escriba_o), 
		.lea_o(lea_o)
	);
	
	initial begin
	_clk_i = 0;
	forever begin
	_clk_i = ~ _clk_i;
	#50;
	end
	end

	initial begin
		// Initialize Inputs
		_clk_i = 0;
		termino_escribir_i = 0;
		termino_leer_i = 0;
		fallo_i = 0;
		_rst_i = 0;

		// Wait 100 ns for global reset to finish
		#100;
        
		// Add stimulus here
		_rst_i = 1;
		#80;
		_rst_i = 0;
		#150;
		termino_escribir_i = 1;
		#80;
		termino_escribir_i = 0;
		#80;
		fallo_i = 0;
		#100;
		termino_leer_i = 1;
		#80;	
		termino_leer_i = 0;
		#1000;
		_rst_i = 1;
		#200;
		_rst_i=0;
	end
      
endmodule

